layui.define(['layer'], function (exports) {

    var $ = layui.$

    var obj = {

        //数字加减函数（基本参数对象，最大值返回函数，最小值返回函数）

        plusminus: function () {

            $(".plus-minus").each(function () {

                //定义按钮HTML

                var plusminusbutton = '<button style="padding:0;margin:0" type="button" class="layui-btn vk-minus"><i class="layui-icon layui-icon-subtraction"></i></button>'

                    + '<button style="padding:0;margin:0" type="button" class="layui-btn  vk-plus"><i class="layui-icon layui-icon-addition"></i></button>';

                var data = new Object;

                data.step = $(this).find('input').data('step');

                data.maxvalue = $(this).find('input').data('maxvalue');

                data.minvalue = $(this).find('input').data('minvalue');


                data.val = $(this).find('input').val();

                data.nnumber = $(this).find('input').data('nnumber');

                //定义默认参数，合并参数

                options = $.extend({

                    step: 1, //每次点击加减的值

                    maxvalue: 0, //最大值，默认false，不限制

                    minvalue: 0, //最小值，默认false，不限制

                    nnumber:0

                }, data);


                var elem = $(this).find('input'),

                    step = parseInt(options.step),

                    maxvalue = options.maxvalue,

                    minvalue = options.minvalue;

                    nnumber = options.nnumber;

                    if(maxvalue >= nnumber){
                        maxvalue = nnumber;
                    }

                //参数不规范则返回

                if (elem == null || elem == undefined) { return };

                if (step == 0 || step == undefined) { return };

                //加入按钮HTML

                $(elem).after(plusminusbutton);

                if (maxvalue == false) {
                    $(this).find('input').val(0);
                    //加灰色
                    $(this).find('input').siblings("button").addClass("layui-btn-disabled");
                }
                //点击增加

                $(elem).parent().on("click", ".vk-plus", function () {

                    var nowinput = $(this).siblings("input"), //当前输入框元素

                        nowbutton = $(this).siblings("button"), //当前按钮元素

                        oldval = $(nowinput).val(), //点击前的值

                        newval = parseInt(oldval) + step; //点击后的值

                        //判断条件。是否最大值

                    if (maxvalue == false) {

                        $(nowinput).val(0);
                        return;

                    }


                    if (newval < maxvalue && newval > minvalue) {

                        $(nowbutton).removeClass("layui-btn-disabled");

                    }
                    if (newval > 0 && maxvalue <= newval) {
                        $(nowbutton).removeClass("layui-btn-disabled");
                    }



                    if (maxvalue != 0 && newval >= maxvalue) {

                        $(nowinput).val(maxvalue);

                        $(this).addClass("layui-btn-disabled");

                    }
                    if (maxvalue != 0 && newval < maxvalue) {
                        $(nowinput).val(newval);
                    }
                    //模拟change事件

                    $(nowinput).trigger('change');


                    return;

                });

                //点击减少（同上）

                $(elem).parent().on("click", ".vk-minus", function () {

                    var nowinput = $(this).siblings("input"),

                        nowbutton = $(this).siblings("button"), //当前按钮元素

                        oldval = $(elem).val(),

                        newval = parseInt(oldval) - step;

                    if (newval < maxvalue && newval > minvalue) {

                        $(nowbutton).removeClass("layui-btn-disabled");

                    }

                    if (maxvalue > 0 && maxvalue >= newval) {
                        $(nowbutton).removeClass("layui-btn-disabled");
                    }


                    if (minvalue == false) {

                        $(nowinput).val(parseInt(oldval) - step);

                    }
                    if (minvalue != 0 && newval > minvalue) {

                        $(nowinput).val(parseInt(oldval) - step);

                    }
                    if (minvalue != 0 && newval <= minvalue) {

                        $(nowinput).val(minvalue);

                        $(this).addClass("layui-btn-disabled");

                    }
                    if (minvalue == 0 && newval <= minvalue) {

                        $(nowinput).val(minvalue);

                        $(this).addClass("layui-btn-disabled");

                    }

                    //模拟change事件

                    $(nowinput).trigger('change');



                    return;

                });

            });

        }

    };

    exports('common', obj);

});